الگوها توصیف کنندهی مسایل متواتری هستند که در شرایط مشخصی روی میدهند. الگوها شامل راهحل پیشنهادی برای حل این مسایل نیز میباشند. علاوه بر این الگوهای طراحی نرمافزار میتوانند در مستندسازی طراحی انجام شده نیز کمک کنند تا تصویری که در ذهنمان راجع به یک سیستم و یا زیر سیستم داریم در قالب مناسب بیان کنیم. افرادی که میخواهند الگوهای ما را گسترش دهند یا پیادهسازی نمایند با مطالعهی الگوها دقیقا از دیدگاه ما نسبت به سیستم و مسأله آگاه میشوند.
علاوه بر این الگوهای طراحی پاسخگویی به انواع نیازمندیهای وظیفهمندی و غیر وظیفهمندی را میسر میسازند و به این ترتیب به یک طراحی خوب کمک میکنند. الگوها علاوه بر ارایهی راهکارهای مناسب برای دستیابی به نیازهای وظیفهمندی، توان پاسخ به نیازهای غیر وظیفهمندی مانند تغییرپذیری، آزمونپذیری و قابلیت نگهداری را نیز دارا هستند.
لازم است توجه شود که الگوهای طراحی به حل مسأله کمک میکنند و لی راهحل کامل آنرا در اختیار ما نمیگذارند، از این جهت شبیه الگوهای لباس هستند که شکل کلی از طراح را در اختیار ما میگذارند ولی برای استفاده مناسب از هر الگو لازم است طراحی با نوآوری و خلاقیت خود آن را در زمینهی مورد نیاز خود بدوزد.
بحث الگوها در مهندسی اولین بار در معماری ساختمانی مطرح شد، لکن اولین کسی که از الگوها برای تولید نرمافزار کمک گرفت فردی به نام اریک گاما است که در سال ۱۹۹۱ در تز دکترای خود به بحث و بررسی الگوها پرداخت. گاما به همراه سه نفر دیگر گروه GoF را تشکیل دادند و در کتابی الگوهای خود را توصیف کردند. این کتاب با استقبال عمومی مواجه شد و از آن پس الگوهای طراحی GoF شهرت بسیاری پیدا کرده، در گسترههای مختلف علم مهندسی نرمافزار به کار گرفته شدند.
کارایی و مقبولیت الگوهای طراحی GoF Design Pattern) GoF ) به حدی رسیده است که امروزه ابزارهای حرفهای CASE بطور مستقیم از آنها پشتیبانی میکنند و امکان اعمال الگوهای طراحی GoF را فراهم میکنند. از جمله این ابزارها میتوان از Rational XDE ،Rational Rose و Borland Together نام برد.
تقسیم بندی الگوهای پایه GoF:
الگوهای پایه GoF از لحاظ هدف به سه دسته تقسیم شدهاند :
۱٫ الگوهای آفرینشی (Creational)
در فرآیندهای تولید اشیاء استفاده میشوند و عبارتند از : Factory Method، Builder، Prototype و Singleton
2. الگوهای ساختاری (Structural)
در ترکیب کلاسها و اشیاء مورد استفاده قرار میگیرند و عبارتند از : Adapter، Bridge، Composite، Decorator، Facade، Flyweight و Proxy
3. الگوهای رفتاری (Behavioral)
چگونگی تعامل بین کلاسها یا اشیاء و نحوهی توزیع مسؤولیت بین آنها را مورد بحث قرار میدهند و عبارتند از : Chain of responsibility, Command, Interpreter, Iterator, Mediator,Memento, Observer, State, Strategy, Template method و Visitor
منبع:www.microrayaneh.com

javahermarket
نظرات شما عزیزان: